在完成了與Bootcamp間的互動後,接著就來完成Course的CRUD功能
const course = await Course.findById(req.params.id).populate({
path: 'bootcamp',
select: 'name description'
});
第一行的意思為把course model的bootcamp欄位定義為輸入的bootcampId
這樣新增的course時就能reference到bootcamp model
req.body.bootcamp = req.params.bootcampId;
const bootcamp = await Bootcamp.findById(req.params.bootcampId);
if (!bootcamp) {
return next(
new ErrorResponse(`Bootcamp not found with id ${req.params.bootcampId}`, 404)
);
}
const course = await Course.create(req.body);
先確定有找到課程,且輸入格式正確但id錯誤時會跳出error
使用findByIdAndUpdate更新課程內容
let course = await Course.findById(req.params.id);
if (!course) {
return next(
new ErrorResponse(`No course with the id of ${req.params.id}`, 404)
);
}
course = await Course.findByIdAndUpdate(req.params.id, req.body, {
new: true,
runValidators: true
});
方法和上述相同,找到課程後再將其移除就好了
await course.remove();